package com.share.order.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.share.order.domain.EndOrderVo;
import com.share.order.domain.OrderInfo;
import com.share.order.domain.SubmitOrderVo;

import java.util.List;
import java.util.Map;

/**
 * @author ZhouShuang
 * @version 17
 * @Title
 * @date 2025/10/23 下午7:15
 */
public interface IOrderInfoService extends IService<OrderInfo> {
    /**
     * 查询未完成的订单
     * @param userId
     * @return
     */
    OrderInfo getNoFinishOrder(Long userId);

    /**
     * 创建订单
     * @param orderForm
     */
    void saveOrder(SubmitOrderVo orderForm);

    /**
     * 结束订单
     * @param endOrderVo
     */
    void endOrder(EndOrderVo endOrderVo);

    /**
     * 获取用户订单分页列表
     * @param userId
     * @return
     */
    List<OrderInfo> selectOrderListByUserId(Long userId);

    /**
     * 获取订单详情
     * @param id
     * @return
     */
    OrderInfo getInfo(Long id);

    /**
     * 根据订单编号获取订单详情
     * @param orderNo
     * @return
     */
    OrderInfo getByOrderNo(String orderNo);

    /**
     * 订单报表
     * @param sql
     * @return
     */
    Map<String, Object> getOrderCount(String sql);

    void processPaySucess(String orderNo);
}
